<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		题目：“hasPubProperty”检测某个属性，是不是该对象公有属性？
		<script>
			//1.只要该属性在公有区中出现，就是公有属性
			Object.prototype.hasPubProperty=function hasPubProperty(attr){
				//1.this--->p实例  2.参数 attr-->name
				//console.log(this.__proto__);//兼容
				let proto=Object.getPrototypeOf(this);//找原型对象
				
				while(proto){//1.Person.prototype  2.Object.prototype  3.null---》false
					if(proto.hasOwnProperty(attr)){
						return true;
					}
					//1. proto=Object.getPrototypeOf(Person.prototype);//Object.prototype
					//2. proto=Object.getPrototypeOf(Object.prototype);//null
					proto=Object.getPrototypeOf(proto);
				}
				
				return false;
			}
			
			function Person(name,age){
				this.name=name;
				this.age=age;
			}
			
			Person.prototype.job="CEO";
			Object.prototype.age=88;
			
			let p = new Person("lili",18)
				
			//console.log(p);
			//age即属于私有，也属于公有
			console.log(p.hasPubProperty("age"));//是公有  true
		</script>
	</body>
</html>
